{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 合规判定提示词 #\n",
    "from openai import OpenAI\n",
    "\n",
    "client = OpenAI(\n",
    "    #api_key=os.getenv(\"DASHSCOPE_API_KEY\"),\n",
    "    # api_key=\"sk-b571bfbe652b4ec68ac0491e33949622\", # 这种写法不好，泄露了api-key。 回头正式部署时改掉。\n",
    "    # base_url=\"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n",
    "    api_key=\"ollama\",\n",
    "    base_url=\"http://192.168.20.43:11434/v1\"\n",
    ")\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "合规判断：不合规\n",
      "\n",
      "资料：根据《中华人民共和国劳动法》等相关法律法规，职工享有休息休假的权利。\n",
      "\n",
      "结论：公司的行为不应违反中国现行法律法规赋予员工的合法权益。\n",
      "\n",
      "理据支撑：《中华人民共和国劳动法》中明确规定，国家实行每日工作时间不超过八小时、平均每周工作时间不超过四十小时的工作制度，用人单位因生产、经营需要，经与工会和劳动者协商后可以延长工作时间，但一般不得超过三十六小时/周，并应支付加班工资。而996工作制（每天从早上9点工作至晚上9点，一周工作6天）明显超过这一标准。《中华人民共和国劳动合同法》中同样规定了用人单位实施加班制度应当与员工协商一致的原则、以及额外的加班待遇的要求。\n",
      "\n",
      "论据反驳：执行996工作制可能会导致劳动者的工作和休息严重不平衡，对心理健康、身体健康产生不利影响，并可能侵犯劳动者的合法权益而不被批准。然而，实践中也存在不同公司选择适合其行业特性的工时制度的情形，需要具体分析是否违规。\n",
      "\n",
      "结论限定：该论述的前提是遵守《中华人民共和国劳动法》及其相关法律法规所设定的基本工作时间及加班规定，在不违反劳动者权利的基础上进行考虑公司的实际生产需求与调整工作制的可能性。不符合上述原则的执行996工作制，将被视为对法律规定的严重违反，被认定为不合规。\n",
      "\n",
      "涉嫌违反的法律法规：《中华人民共和国劳动法》和《中华人民共和国劳动合同法》，其中涉及了正常的工时制度、加班补偿及相关保护劳动者权益的规定。具体实施需根据公司所处行业特性与特殊情况灵活考量，并确保遵守相关法律法规的基础上保障员工基本权利不受侵害。\n"
     ]
    }
   ],
   "source": [
    "def llm_prompt(query):\n",
    "    system_prompt = f\"\"\"\\\n",
    "    # 角色 #\\\n",
    "    你是一位专业且熟悉中国境内法律的中国国企和央企的合规律师。\\\n",
    "    -----------------------\\\n",
    "    # 背景知识 #\n",
    "    <background_knowledge>\n",
    "    图尔敏论证批判模型是优秀论证模型，由英国哲学家图尔敏提出的。这种模型由六部分组成:\\\n",
    "    - 资料Datum：用来论证的事实证据，相当于三段论中的小前提。\\\n",
    "    - 结论Claim：就是被证明主题、观点。相当于三段论中的结论。\\\n",
    "    - 理据Warrant：用来连接资料证据和结论之间的普遍性原则、规律等，是连接证据和结论之间的桥梁，常常相当于三段论中的大前提。\\\n",
    "    - 支撑Backing：用来支持理据Warrant的陈述、理由，它不直接支持结论Claim，而是支持理据Warrant，证明这些普遍性原则是真的。\\\n",
    "    - 反驳Rebuttal：为了让自己推论无懈可击，提出自己知道的反例，并作反驳。\\\n",
    "    - 限定Qualifier：对支撑Backing、结论Claim的范围作适当的限定，从而使自己的结论更合理。\\\n",
    "    图尔敏论证模型在三段论基础上，多了支撑Backing、反驳Rebuttal、限定Qualifier三个要素，因此证论更合理。\\\n",
    "    </background_knowledge>\n",
    "    -----------------------\\\n",
    "    # EXAMPLE AND OUTPUT FORMAT #\n",
    "    <example_userQuery>合规管理部门仅负责制度制定，不参与执行和监控。</example_userQuery>\n",
    "    <example_output>\n",
    "    合规判断：不合规\\\n",
    "    资料：合规管理部门的职责通常包括制度的制定、执行和监控。\\n合规管理部门在企业中的角色是确保企业遵守法律法规和内部规定\\\n",
    "    结论：合规管理部门应当参与制度的执行和监控，而不仅仅是制度制定。\\\n",
    "    理由：合规管理的有效性需要通过执行和监控来保障，仅有制度制定是不够的。\\\n",
    "    论据支撑：《中央企业合规管理指引(试行)》等指引明确了合规管理的职责包括制度的执行和监控。\\n 企业内部控制和风险管理的实践表明，执行和监控是保障合规性的关键环节。\\\n",
    "    结论反驳：合规管理部门由于资源或专业限制，无法参与执行和监控。\\\n",
    "    反驳回应:合规管理部门可以协调其他部门共同参与执行和监控，或通过建立有效的内控机制来解决资源和专业限制问题。\\\n",
    "    限定：结论的限定是合规管理部门应当根据企业实际情况和能力，合理分配职责，确保合规性。\\\n",
    "    涉嫌违反的法律法规：《中华人民共和国公司法》:规定了公司治理结构和内部控制的基本要求。\\n 《中央企业合规管理指引(试行)》:提供了合规管理职责的具体指导。\\\n",
    "    </example_output>\n",
    "    -----------------------\\\n",
    "    # 限制条件 #\n",
    "    - 在只考虑中国境内的法律的情况下，分析{{userQuery}}可能涉及的法律法规，尽量不遗漏。 \\\n",
    "    - 使用与用户相同的语言进行交流，用词清楚明了，短句精炼，必须符合法律专业的语言风格。 \\\n",
    "    -----------------------\\\n",
    "    # 你的任务 #\n",
    "    你的任务是根据<background_knowledge>来推理用户给出的内容{{query}}是否合规，并输出结果和理由。\\\n",
    "    <query>: {query}\\\n",
    "\n",
    "    ---------------------\\\n",
    "    \"\"\"\n",
    "    completion = client.chat.completions.create(\n",
    "        model=\"qwen2-7b-instruct\",\n",
    "        messages=[{'role': 'system', 'content': system_prompt},\n",
    "                  {'role': 'user', 'content': query}],\n",
    "        )\n",
    "    return completion.choices[0].message.content\n",
    "\n",
    "query = \"公司可以执行996工作制。\"   \n",
    "llm_output = llm_prompt(query) \n",
    "print(llm_output)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
